Conversation
pages/dzen_page.py
Outdated
|
|
||
| class DzenPage(BasePage): | ||
| def switch_to_new_tab(self): | ||
| self.driver.switch_to.window(self.driver.window_handles[-1]) No newline at end of file |
There was a problem hiding this comment.
Нужно исправить: здесь и далее по проекту: все прямые обращения к driver необходимо вынести в basePage и оттуда за счет наследования переиспользовать в объектах страниц
pages/main_page.py
Outdated
|
|
||
|
|
||
| class MainPage(BasePage): | ||
| ORDER_TOP = (By.CSS_SELECTOR, "button.Button_Button__ra12g") |
There was a problem hiding this comment.
Нужно исправить: Разместить локаторы в отдельную папку, структура папки и файлов будет совпадать с структурой page objects - то есть у каждого файла с РО будет соответствующий файл с локаторами.
pages/order_page.py
Outdated
| el = self.wait.until(EC.presence_of_element_located(locator)) | ||
| self.driver.execute_script("arguments[0].click();", el) | ||
|
|
||
| def _safe_click(self, locator): |
There was a problem hiding this comment.
похоже это должно быть на уровне basePage
pages/order_page.py
Outdated
| options = self.wait.until(EC.visibility_of_all_elements_located(self.RENT_OPTIONS)) | ||
| options[0].click() | ||
|
|
||
| if data["color"] == "black": |
There was a problem hiding this comment.
Нужно исправить: условий в тестах быть не может, тест всегда однозначен. Если это не вписывается в параметризацию, значит ее быть не должно и это просто несколько отдельных тестовых методов
tests/test_navigation.py
Outdated
| from pages.main_page import MainPage | ||
| from data.urls import BASE_URL | ||
|
|
||
| DZEN_REDIRECT_URL = "https://dzen.ru/?yredirect=true" |
There was a problem hiding this comment.
нужно исправить: всегда получать урлы из констант
| @pytest.mark.navigation | ||
| class TestNavigation: | ||
|
|
||
| def test_click_scooter_logo_opens_main(self, driver, wait): |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_navigation.py
Outdated
| main.click_scooter_logo() | ||
|
|
||
| wait.until(EC.url_to_be(BASE_URL)) | ||
| assert driver.current_url == BASE_URL |
There was a problem hiding this comment.
Нужно исправить: здесь и далее: прямого обращения к driver и wait из тестов быть не должно , только через методы пейджей
tests/test_navigation.py
Outdated
|
|
||
| driver.get(DZEN_REDIRECT_URL) | ||
| long_wait.until(lambda d: "dzen.ru" in d.current_url) | ||
| assert "dzen.ru" in driver.current_url No newline at end of file |
tests/test_order.py
Outdated
| main.open(BASE_URL) | ||
| main.accept_cookies_if_present() | ||
|
|
||
| if entry == "top": |
There was a problem hiding this comment.
Нужно исправить: условий в тестах быть не может, тест всегда однозначен. Если это не вписывается в параметризацию, значит ее быть не должно и это просто несколько отдельных тестовых методов
|
|
||
|
|
||
| @pytest.fixture | ||
| def wait(driver): |
There was a problem hiding this comment.
нужно удалить, это не фикстура и предусловие
| @allure.step("Проверить успешное оформление заказа") | ||
| def assert_success(self): | ||
| self.is_visible(L.SUCCESS_MODAL) | ||
| self.is_visible(L.SUCCESS_TEXT) No newline at end of file |
There was a problem hiding this comment.
Отлично: в пейджах отдельные действия собраны в полноценные тестовые шаги, это сделает код тестов более понятным
tests/test_faq.py
Outdated
| (4, "Пока что нет"), | ||
| (5, "Самокат приезжает к вам"), | ||
| (6, "Штрафа не будет"), | ||
| (7, "Московской области"), |
There was a problem hiding this comment.
нужно исправить: в файле с тестами должны быть только тесты, все тестовые данные нужно хранить во внешних модулях и импортировать
No description provided.